<?php
namespace Sdz\BlogBundle\Controller;
use Sdz\BlogBundle\Entity\ArticleLieu;

use Sdz\BlogBundle\Entity\Commentaire;

use Sdz\BlogBundle\Entity\Image;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Response;

use Sdz\BlogBundle\Entity\Article;

class BlogController extends Controller
{

    public function indexAction($page)
    {
        $articles = array(
                array('titre' => 'Mon weekend a Phi Phi Island !', 'id' => 1,
                        'auteur' => 'winzou',
                        'contenu' => 'Ce weekend était
                        trop bien. Blabla...', 'date' => new \Datetime()),
                array(
                        'titre' => 'Repetition du National Day de
                        Singapour', 'id' => 2, 'auteur' => 'winzou',
                        'contenu' => 'Bientôt prêt pour le jour J. Blabla...',
                        'date' => new \Datetime()),
                array('titre' => 'Chiffre d\'affaire en hausse', 'id' => 3,
                        'auteur' => 'M@teo21',
                        'contenu' => '+500% sur 1 an,
                        fabuleux. Blabla...', 'date' => new \Datetime()));

        if ($page < 1) {
            throw $this
                    ->createNotFoundException(
                            'Page inexistante (page = ' . $page . ') ');
        } else {
            return $this
                    ->render('SdzBlogBundle:Blog:index.html.twig',
                            array('articles' => $articles));
        }
    }

    public function voirAction($id)
    {

        $em = $this->getDoctrine()->getRepository('SdzBlogBundle:Article');
        $article = $em->find($id);

        if (null == $article) {
            throw $this
                    ->createNotFoundException(
                            'Article [' . $id . '] introuvable');
        }

        $tCommentaires = $this->getDoctrine()->getRepository('SdzBlogBundle:Commentaire')->findAll();
        
        return $this->render('SdzBlogBundle:Blog:voir.html.twig',
                array('article' => $article, 'commentaires' => $tCommentaires));
        
    }

    public function ajouterAction()
    {

        $article = $this->getDoctrine()->getRepository('SdzBlogBundle:Article')->find('1');
        
        if ($this->get('request')->getMethod() == 'POST') {
            $this->get('session')
                    ->setFlash('notice', 'Article bien enregistré');
            return $this
                    ->redirect(
                            $this
                                    ->generateUrl('sdzblog_voir',
                                            array('id' => 5)));
        } else {
            return $this->render('SdzBlogBundle:Blog:ajouter.html.twig');
        }
    }

    /**
     * @param unknown_type $id
     * @return \Symfony\Component\HttpFoundation\Response
     */
    public function modifierAction($id)
    {
        $em = $this->getDoctrine()->getEntityManager();

        $article = $this->getDoctrine()->getRepository('SdzBlogBundle:Article')->find($id);
        
        if (null === $article) {
            throw $this->createNotFoundException("L'article [".$id."] n'existe pas !");
        }
        
        $lieux = $this->getDoctrine()->getRepository('SdzBlogBundle:Lieu')->findAll();
        
        foreach ($lieux as $lieu) {
            $articleLieu = new ArticleLieu();
            $articleLieu->setArticle($article);
            $articleLieu->setLieu($lieu);
            
            $articleLieu->setMeteo("Ensoleillé");
            
            $em->persist($articleLieu);
        }
        $em->flush();
                
                        
        return $this
                ->render('SdzBlogBundle:Blog:modifier.html.twig',
                        array(
                                'article' => $article));
    }

    public function supprimerAction($id)
    {
        $em = $this->getDoctrine();
        
        $article = $em->getRepository('SdzBlogBundle:Article')->find($id);
        
        if (null === $article) {
            throw $this->createNotFoundException("L'article [".$id."] n'existe pas !");
        }
        
        $categories = $em->getRepository('SdzBlogBundle:Categorie')->findAll();
        
        foreach ($categories as $categorie) {
            $article->removeCategorie($categorie);
        }
        
        $em->getEntityManager()->flush();
        
        return $this->render('SdzBlogBundle:Blog:supprimer.html.twig');
    }

    public function menuAction($nombre)
    {
        // On fixe en dur une liste ici, bien entendu par la suite        
        $liste = array(2 => 'Mon dernier weekend !',
                5 => 'Sortie de Symfony2.1', 9 => 'Petit test');
        return $this
                ->render('SdzBlogBundle:Blog:menu.html.twig',
                        array('liste_articles' => $liste
                        // C'est ici tout l'intérêt : le contrôleur passe les variables nécessaires au template !
                        ));

    }
}
